\section{Funktionale Anforderungen(S)}
\label{sec:FunktionaleAnforderungen}
\begin{longtable}{l p{12cm}}


% Wartungsbedarf erkennen

\textbf{F1} & \textbf{Wartungsbedarf erkennen} \\
	&	Anhand von verschiedenen Informationen kann das Auto erkennen, ob es gewartet werden muss. \\\\


\textbf{F1.1} & \textbf{erkennen nach Zeit und Distanz} \\
	&	Das Auto erkennt Wartungsbedarf nach einer bestimmten Anzahl an Kilometern und nach einer festgelegten Zeit. \\\\ % Reicht hier eine Fernwartung?


\textbf{F1.1} & \textbf{Updates suchen} \\
	&	Das Auto soll in der Lage sein alle 8 Wochen auf neue Updates zu prüfen. \\\\


\textbf{F1.1} & \textbf{Updates erkennen} \\
	&	Das Auto kann Informationen über neue Updates von der Werkstatt empfangen. Dies soll nur genutzt werden für wichtige, sicherheitsrelevante Updates. \\\\


% Modell feststellen

\textbf{F2} & \textbf{Modell feststellen} \\
	&	Es kann festgestellt werden, welche Komponenten im Auto verbaut sind. Zudem wird überprüft für welche Komponenten ein Update zur Verfügung steht. Die Informationen werden von der Werkstatt gesammelt und dienen als Grundlage für die Wartung und für ein Software Update. \\\\
	

% Wartung durchführen

\textbf{F3} & \textbf{Wartung durchführen} \\
	&	Die Werkstatt kann alle für eine Wartung relevanten Daten auslesen und auswerten. \\\\
	
		
\textbf{F3.1} & \textbf{Verbindung aufbauen} \\
	&	Der Fahrer muss in der Lage sein mit Hilfe des Autos eine Verbindung zur Werkstatt aufzubauen. Die Werkstatt wird benachrichtigt und kann die Wartung starten. \\\\
	
\clearpage	
\textbf{F3.1.1} & \textbf{Authentifizierung} \\
	&	Der Fahrer muss sich am Server der Werkstatt Authentifizieren, um eine Verbindung aufzubauen. \\\\


\textbf{F3.2} & \textbf{Prüfen} \\
	&	Funktionen des Autos können geprüft werden mit einem Test, der durchlaufen wird. Die Sensoren können einen Selbsttest durchführen. \\\\
	

\textbf{F3.2.2} & \textbf{Auslesen der Daten} \\
	&	Alle für die Wartung relevanten Daten werden ausgelesen und von der Werkstatt geprüft. \\\\


\textbf{F3.2.3} & \textbf{Protokollieren} \\
	&	Ein wesentlicher Teil der Wartung ist die Protokollierung, die bestätigt, dass eine Wartung durchgeführt wurde und festhält, in welchem Zustand sich das Auto zu diesem Zeitpunkt befindet. Auch die beteiligten Personen müssen aufgeführt werden. Das Protokoll muss sowohl im Auto, als auch auf dem Server gesichert werden. \\\\


% Software Update

\textbf{F4} & \textbf{Software Update} \\
	&	Ein Software Update kann an das Auto übertragen und installiert werden. Nur der Fahrer darf die Wartung autorisieren. \\\\


\textbf{F4.1} & \textbf{Update übertragen} \\
	&	Abhängig davon ob und für welche Komponenten ein Update vorhanden ist, wird das Update vom Server der Werkstatt(?) auf das Auto übertragen. \\\\


\textbf{F4.1.1} & \textbf{Auf Übertragungsfehler prüfen} \\
	&	Nachdem das Update vollständig in das Auto übertragen wurde, wird das Paket anhand einer Checksumme auf Übertragungsfehler geprüft. Werden Fehler festgestellt, wird das Update gelöscht und erneut übertragen. \\\\


\clearpage
\textbf{F4.2} & \textbf{Installation} \\
	& Wenn keine Übertragungsfehler oder andere Fehler aufgetreten sind, dann wird das Update installiert. Die Werkstatt überwacht dabei den Installationsprozess. \\\\


\textbf{F4.2.1} & \textbf{Update entfernen im Fehlerfall} \\
	&	Sollten Fehler eintreten muss die Werkstatt in der Lage sein den vorherigen Zustand wiederherzustellen. Ein weiterer Versuch darf danach nur in der Werkstatt stattfinden. \\\\


\textbf{F4.3} & \textbf{Systemtest} \\
	&	Die Werkstatt muss in der Lage sein festzustellen, ob das Update erfolgreich war. Dafür müssen Tests implementiert werden, die die Komponenten auf Funktionsfähigkeit prüfen. Die Tests sind je nach Komponente anders. (...) \\\\


\textbf{F4.4} & \textbf{Protokollieren} \\
	&	Der gesamte Vorgang muss protokolliert werden. Das Protokoll muss sowohl im Auto, als auch auf dem Server der Werkstatt gesichert werden. Insbesondere muss festgehalten werden welche Personen beteiligt waren, welche Updates installiert wurden, ob und welche Fehler aufgetreten sind und wie lange der Vorgang gedauert hat. \\\\




\end{longtable}